home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 147 / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z / Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin / games / pop02 / pop02.bas < prev    next >
BASIC Source File  |  2000-06-30  |  38KB  |  571 lines

  1.     1 /*        save"POP02.bas"  /* 2000_06_30 09:00
  2.     2 /*   ! POP_02
  3.     3 /* ┏━━━━━━━━━━━━━━━━━━━━━━━━━┓
  4.     4 /* ┃ POPLE LIGHT2 「ぽっぷる らいと2」 ┃
  5.     5 /* ┃  2000 VS-SOFT PRESENTS    ┃
  6.     6 /* ┃         プログラム作成:滝井 浩明             ┃
  7.     7 /* ┃コノプログラムノコンパイルニハ、bc.x ト gcc_コンパイラ ト cコンパイラver ┃
  8.     8 /* ┃1.0 ノ ライブラリ ト メモリー ヤ ハ-ドディスク ガ ヒツヨウデス。タブン。  ┃
  9.     9 /* ┗━━━━━━━━━━━━━━━━━━━━━━━━━┛
  10.    10 screen 0,2,1,1:console ,,0:mouse(4):mouse(2)
  11.    20 bg_set(0,0,1):bg_set(1,1,1):bg_fill(0,256):bg_fill(1,256):sp_disp(1):bg_scroll(0,0,0):bg_scroll(1,0,0):window(0,0,511,511)
  12.   100 int i,i1,i2,i3,i4,i5,i6,i7,x,xx,xx1,y,yy,a,b,c,tim,col=7,m1,m2,m3,m4,no,no1,no2,no3,st,st1,bu,bu1=2,bu2=1,mx,my,pow1,pow2,pon1,pon2,jp1,jp2,cn,bol,bol1
  13.   110 int ji1,ji2,ji3,ji4,ji5,ji6,ji7,ji8,jia,jib,jca,jcb,jc1,jc2,jc3,jc4,jc5,jc6,jc7,jc8,p1,p2,p3,p4,wait1,z,z1,z2,r,r1,r2,rx,ry,ra,rb,m=1,n=0,iro,nn,lmx=100
  14.   115 int pi1,pi2,pi3,pi4,pc1,pc2,pc3,pc4,tim1,mog,mox,moy,moc,spd,gm,pt1,pt2,sj,sjx,sjy,mno=1,kage,kage1,kmax,sc,dmg,life,gc,tres1,smode=0
  15.   120 dim int map(5,500,31),mapdata(16000),kagex(20),kagey(20),kagec(20),kagem(20),hit(10),mk(5),g(1000),bx(30),by(30),ba(30),bb(30),bc(30)
  16.   130 dim char tres(5,3000),tresd(15100)
  17.   135 dim str smo(2)={"NO USE","AUTO SAVE","NO USE"},trigm(2)={"","A:1 B:2","B:1 A:2"},trs(2)={"RECORD","PLAY  "}
  18.   140 str ik,ik1,mes,mes1,mes3,moji,filn="NO0",sna[255]
  19.   141 dim int hsc(10)={0,50000,45000,40000,35000,30000,25000,20000,15000,10000,5000}
  20.   142 dim str hina(10)[200]={"","ピンク (jetgirls)","リョウコ (ラズベリーフォー)","オヤジ35","ヒークン","mailchum!","jetgirls"
  21.   143 ,"ラズベリーフォー","アストロシスターズ","x68000&デンノウクラブ","ヒロクン(ピンク ニ ラブラブ)"}
  22.   144 dim int hico(10)={1,7,6,1,3,2,1,4,5,1,7}
  23.   145 str mes2[255]=" \'#UDRL[]?+,-./0123456789:;|=&*!abcdefghijklmnopqrstuvwxyz(<)>_。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚                    "
  24.   150 dim int ch_l(13,3)={48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,16433,16432,16435,16434,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82
  25.   151 ,83,84,85,86,87,88,89,90,91,92,93,94,95,127,127,127,127}
  26.   154 dim int ch_r(13,3)={16433,16432,16435,16434,16437,16436,16439,16438,16441,16440,16443,16442,16445,16444,16447,16446
  27.   155 ,16449,16448,16451,16450,48,49,50,51,16453,16452,16455,16454,16457,16456,16459,16458,16461,16460,16463,16462,16465,16464,16467,16466
  28.   156 ,16469,16468,16471,16470,16473,16472,16475,16474,16477,16476,16479,16478,127,127,127,127}
  29.   200 dim int jp(25,1)={0,0,-6,0,-6,0,-6,1,-4,1,-4,2,-2,2,-2,3,0,3,2,4,2,4,4,5,4,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5}
  30.   210 dim char pcm1(9892)
  31.   220 fp=fopen("P_LIGHT.PCM","r"):fread(pcm1,9892,fp):fclose(fp)
  32.   225 d_load()
  33.   230 cpu()
  34.   240 /* ik=inkey$(0):if ik="" then goto 240 else print asc(ik);:end
  35.   260 /*
  36.   290 /***************************************************
  37.   300 if 1=1=1 then map_load1():goto 390 else goto 301
  38.   301 for i=0 to 80:for i1=0 to 31:map(mno,i,i1)=64:next
  39.   302 if (i mod 2)=0 then map(mno,i,0)=17+256:map(mno,i,1)=19+256:map(mno,i,30)=17+256:map(mno,i,31)=19+256
  40.   303 if (i mod 2)=1 then map(mno,i,0)=16+256:map(mno,i,1)=18+256:map(mno,i,30)=16+256:map(mno,i,31)=18+256
  41.   304 next
  42.   305 /*
  43.   309 /*next
  44.   310 goto 390
  45.   311 for i=0 to 500:for i1=0 to 31:map(mno,i,i1)=64:next
  46.   312 if (i mod 2)=0 then map(mno,i,0)=17+256:map(mno,i,1)=19+256:map(mno,i,30)=17+256:map(mno,i,31)=19+256
  47.   313 if (i mod 2)=1 then map(mno,i,0)=16+256:map(mno,i,1)=18+256:map(mno,i,30)=16+256:map(mno,i,31)=18+256
  48.   314 next
  49.   390 apage(1):vpage(3):for i=0 to 300:i1=int(rnd()*256):i2=int(rnd()*511):i3=int(rnd()*250):pset(i1,i2,i3):next
  50.   395 for i=0 to 50 :i1=int(rnd()*256):i2=int(rnd()*495):i3=int(rnd()*4):symbol(i1,i2,"☆",1,1,1,5,i3):next
  51.   400 /*
  52.   410 apage(0):symbol(72,2,"ぽっぷるらいと2",1,1,1,2,0)
  53.   412 symbol(71,1,"ぽっぷるらいと2",1,1,1,5,0)
  54.   415 symbol(70,0,"ぽっぷるらいと2",1,1,1,255,0)
  55.   420 symbol(42,142,"GAME制作:滝井浩明",1,1,1,5,0)
  56.   425 symbol(41,141,"GAME制作:滝井浩明",1,1,1,255,0)
  57.   430 palet(253,rgb(16,0,0))
  58.   432 symbol(62,22,"2",6,5,2,253,0)
  59.   434 palet(254,rgb(31,0,0))
  60.   435 symbol(60,20,"2",6,5,2,254,0)
  61.   440 symbol(12,32,"POPLE",3,3,1,32,0)
  62.   442 symbol(11,31,"POPLE",3,3,1,34,0)
  63.   445 for i=0 to 3:symbol(10-i,30,"POPLE",3,3,1,255,0):next
  64.   450 symbol(12,92,"LIGHT",3,3,1,32,0)
  65.   452 symbol(11,91,"LIGHT",3,3,1,34,0)
  66.   455 for i=0 to 3:symbol(10-i,90,"LIGHT",3,3,1,255,0):next
  67.   460 symbol(52,162,"2000.06.30 VS-SOFT PRESENTS",1,1,0,5,0)
  68.   465 symbol(50,160,"2000.06.30 VS-SOFT PRESENTS",1,1,0,255,0)
  69.   470 symbol(22,192,"何か押すと始まるよ",1,1,2,18,0)
  70.   475 symbol(20,190,"何か押すと始まるよ",1,1,2,255,0)
  71.   476 symbol(22,232,"BREAKで終了 HELPで設定変更",1,1,1,253,0)
  72.   477 symbol(21,231,"BREAKで終了 HELPで設定変更",1,1,1,255,0)
  73.   480 symbol(22,256+102,"GAME OVER",1,2,2,253,0)
  74.   485 for i=0 to 2:symbol(20-i,256+100,"GAME OVER",1,2,2,254,0):next
  75.   486 palet(251,rgb(27,0,8)):palet(252,rgb(31,6,17))
  76.   490 symbol(256+7,256+22,"STAGE",2,3,2,251,0)
  77.   495 symbol(256+6,256+21,"STAGE",2,3,2,252,0)
  78.   496 symbol(256+5,256+20,"STAGE",2,3,2,255,0)
  79.   500 symbol(256+8,256+122,"CLEAR",2,3,2,251,0)
  80.   505 symbol(256+7,256+121,"CLEAR",2,3,2,252,0)
  81.   506 symbol(256+6,256+120,"CLEAR",2,3,2,255,0)
  82.   507 symbol(256+5,256+120,"CLEAR",2,3,2,255,0)
  83.   510 /*
  84.   520 home(0,0,0):sp_off(0,127):apage(0):lmx=100
  85.   530 kyin()
  86.   550 if ik="C" or ik="c" or ik="ソ" or ik=chr$(22) or ik=chr$(9) then conf()
  87.   560 if ik="q" or ik="Q" or ik=chr$(3) then goto 700
  88.   570 if ik="h" or ik="H" then hi_put():goto 520
  89.   590 cn=10:home(0,256,0)
  90.   600 cls:mno=1:bg_scroll(0,0,0):bg_scroll(1,0,0):sp_off(0,127):color 3
  91.   610 for i=0 to 31:for i1=0 to 31:bg_put(m,i1,(63-i),map(mno,i,i1)):next:next:if 1=1=1 then count1()
  92.   620 r=960:r1=32:z2=8:sp_disp(1):x=56:y=152:no=10:sc=0:dmg=0:life=lmx:tim1=0:jp1=0:jp2=0:sj=0:sp_on(10,13):for i=0 to 5:mk(i)=0:hit(i)=0:next
  93.   630 mes="score=       life=     (     )":mog=0:mox=0:moy=31:moc=2:jiput()
  94.   635 mes="DdamageDDdamageDDdamageDDdamageD":mog=0:mox=0:moy=30:moc=10:jiput()
  95.   640 mes=left$(str$(sc)+"      ",6):mog=0:mox=7:moy=31:moc=1:jiput()
  96.   650 mes=left$(str$(life)+"    ",3):mog=0:mox=19:moy=31:moc=3:jiput()
  97.   655 bg_scroll(1,0,256)
  98.   660 ik=inkey$(0):bu=strig(1):msstat(m1,m2,m3,m4):if ik<>"" or bu>0 or m3<>0 or m4<>0 then goto 660
  99.   670 m_play(1,2,3,4,5,6,7,8):m_loop():m_stop(1,2,3,4,5,6,7,8)
  100.   680 if ik=chr$(3) or ik="q" or ik="Q" then goto 700 else goto 520
  101.   700 screen 1,3,1,1:end
  102.  1000 func cara()       /*----------------------------------
  103.  1010 st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4):mspos(mx,my)
  104.  1015 ik=inkey$(0):if ik=chr$(30) and no<12 then no=no+1 else if ik=chr$(31) and no>0 then no=no-1
  105.  1020 locate 0,0:print using"## ## ## ## ##";st,bu,m3,m4,no
  106.  1024 locate 0,4:print using"##### ##### ##### #####";ch_l(no,0),ch_l(no,1),ch_l(no,2),ch_l(no,3)
  107.  1025 locate 0,2:print using"##### ##### ##### #####";ch_r(no,0),ch_r(no,1),ch_r(no,2),ch_r(no,3)
  108.  1030 sp_on(10,17)
  109.  1040 sp_set(10,100,150,ch_l(no,0)+256)
  110.  1045 sp_set(11,200,150,ch_r(no,0)+256)
  111.  1050 sp_set(12,116,150,ch_l(no,1)+256)
  112.  1055 sp_set(13,216,150,ch_r(no,1)+256)
  113.  1060 sp_set(14,100,166,ch_l(no,2)+256)
  114.  1065 sp_set(15,200,166,ch_r(no,2)+256)
  115.  1070 sp_set(16,116,166,ch_l(no,3)+256)
  116.  1075 sp_set(17,216,166,ch_r(no,3)+256)
  117.  1090 goto 1010
  118.  1900 endfunc
  119.  2000 func m_loop()     /*---------------------------------
  120.  2010 st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4):mspos(mx,my)
  121.  2012 if bu=bu1 or st=3 or st=6 or st=9 then m3=1:m4=0 else if bu=bu2 or st=1 or st=4 or st=7 then m3=0:m4=1
  122.  2013 if tres1=0 then tres(mno,tim1)=abs(m3)*10+abs(m4) else if tres1=1 then m3=int(tres(mno,tim1)/10):m4=(tres(mno,tim1) mod 10)
  123.  2015 ik=inkey$(0):if ik=chr$(3) or ik="q" or ik="Q" then goto 2900 else if ik=chr$(12) then sp_disp(0):cls:goto 2900
  124.  2016 if ik="E" or ik="e" or ik="イ" then edt() else if ik=chr$(27) then pause()
  125.  2017 if ik="=" then bol=int(rnd()*1000):bol1=bol:stclr()
  126.  2020 if (ji7<40 or ji8<40) and m3<>0 and pow1<30 and pow2=0 and jp1=0 and jp2=0 then pow1=pow1+1:pow2=0:no=7:no1=0:goto 2030
  127.  2022 if (ji5<40 or ji6<40) and m4<>0 and pow1=0 and pow2<30 and jp1=0 and jp2=0 then pow2=pow2+1:pow1=0:no=7:no1=1:goto 2030
  128.  2025 if (ji1<40 or ji2<40 or y=224) and m3<>0 and pow1<30 and jp1=0 and jp2=0 then pow1=pow1+1:pow2=0:no=8:no1=0:xx=0 else if (ji1<40 or ji2<40 or y=224) and m4<>0 and pow2<30 and jp1=0 and jp2=0 then pow2=pow2+1:pow1=0:no=8:no1=1:xx=0
  129.  2030 if pow1>=30 and m3=0 then sj=1:sjx=-8:sjy=y:jp1=0:pow1=0:hitclr() else if pow1>0 and pow1<30 and m3=0 then jp1=1:xx1=int(pow1/cn)*2+2:pow1=0:hitclr()
  130.  2032 if pow2>=30 and m4=0 then sj=1:sjx=8:sjy=y:jp2=0:pow2=0:hitclr() else if pow2>0 and pow2<30 and m4=0 then jp2=1:xx1=int(pow2/cn)*2+2:pow2=0:hitclr()
  131.  2035 /*locate 3,0:print using"### ###";pow1,pow2
  132.  2040 if pow1>0 then pon1=int(pow1/cn):sp_on(14,14):sp_set(14,x+24,y+20,100+pon1+256*col) else if pow2>0 then pon2=int(pow2/cn):sp_on(14,14):sp_set(14,x-8,y+20,100+pon2+256*col) else sp_off(14,14)
  133.  2050 if jp1>0 then xx=-xx1:yy=jp(jp1,0)+int(jp(jp1,0)/2)*(xx1-3):no=jp(jp1,1):jp1=jp1+1
  134.  2051 if jp2>0 then xx=xx1:yy=jp(jp2,0)+int(jp(jp2,0)/2)*(xx1-3):no=jp(jp2,1):jp2=jp2+1
  135.  2055 if jp1>20 then jp1=0
  136.  2056 if jp2>20 then jp2=0
  137.  2060 if sj=1 then xx=sjx:yy=0:no=9
  138.  2070 if xx<0 and (ji5<40 or ji6<40) then xx=0 else if xx>0 and (ji7<40 or ji8<40) then xx=0
  139.  2080 if y<50 then spd=0 else if y<120 then spd=1 else spd=5
  140.  2085 tim1=tim1+1:if spd=0 then srol1():srol1():srol1():srol1():srol1() else if (tim1 mod spd)=0 then srol1()
  141.  2100 x=x+xx:y=y+yy:if x<22 then x=22 else if x>232 then x=232
  142.  2110 if y<16 then y=16 else if y>224 then y=224:jp1=0:jp2=0
  143.  2115 if y=224 and life>0 then life=life-1:mes=left$(str$(life)+"    ",3):mog=0:mox=19:moy=31:moc=3:jiput()
  144.  2118 if life=0 then bg_fill(1,256):home(0,0,256):kyin():hi_put():lmx=100:goto 2900
  145.  2120 if no1=0 then sp_on(10,13):sp_set(10,x,y+4,ch_l(no,0)+col*256):sp_set(11,x+16,y+4,ch_l(no,1)+col*256):sp_set(12,x,y+20,ch_l(no,2)+col*256):sp_set(13,x+16,y+20,ch_l(no,3)+col*256)
  146.  2125 /*
  147.  2130 if no1<>0 then sp_on(10,13):sp_set(10,x,y+4,ch_r(no,0)+col*256):sp_set(11,x+16,y+4,ch_r(no,1)+col*256):sp_set(12,x,y+20,ch_r(no,2)+col*256):sp_set(13,x+16,y+20,ch_r(no,3)+col*256)
  148.  2140 if xx=0 and yy=0 and no=10 and (ji1=36 or ji1=37 or ji1=38 or ji1=39 or ji2=36 or ji2=37 or ji2=38 or ji2=39) then stclr()
  149.  2150 if kmax>0 then kg_put()
  150.  2200 ji1=bg_get(m,int((x-4)/8),((int((y+24)/8)+(63-int(z1/8))+0) mod 64)):jc1=int(ji1/256):ji1=(ji1 mod 256)
  151.  2201 ji2=bg_get(m,int((x-4)/8)+1,((int((y+24)/8)+(63-int(z1/8))+0) mod 64)):jc2=int(ji2/256):ji2=(ji2 mod 256)
  152.  2202 ji3=bg_get(m,int((x-8)/8),((int((y+34)/8)+(63-int(z1/8))+0) mod 64)):jc3=int(ji3/256):ji3=(ji3 mod 256)
  153.  2203 ji4=bg_get(m,int((x+0)/8)+1,((int((y+34)/8)+(63-int(z1/8))+0) mod 64)):jc4=int(ji4/256):ji4=(ji4 mod 256)
  154.  2204 ji5=bg_get(m,int((x-0)/8)-1,((int((y+8)/8)+(63-int(z1/8))) mod 64)):jc5=int(ji5/256):ji5=(ji5 mod 256)
  155.  2205 ji6=bg_get(m,int((x-0)/8)-1,((int((y+8)/8)+(63-int(z1/8))+1) mod 64)):jc6=int(ji6/256):ji6=(ji6 mod 256)
  156.  2206 ji7=bg_get(m,int((x)/8)+1,((int((y+8)/8)+(63-int(z1/8))) mod 64)):jc7=int(ji7/256):ji7=(ji7 mod 256)
  157.  2207 ji8=bg_get(m,int((x)/8)+1,((int((y+8)/8)+(63-int(z1/8))+1) mod 64)):jc8=int(ji8/256):ji8=(ji8 mod 256)
  158.  2209 /*
  159.  2210 if m4<>0 and (ji5<40 or ji6<40) and xx<=0 then xx=0:yy=0:jp1=0:jp2=0:no=7:no1=1:sj=0 else if m3<>0 and (ji7<40 or ji8<40) and xx>=0 then xx=0:yy=0:jp1=0:jp2=0:no=7:no1=0:sj=0 else if m3=0 and m4=0 and no=7 then no=5
  160.  2215 if (ji5<40 or ji6<40) and xx<=0 and sj>0 then xx=0:yy=0:jp1=0:jp2=0:no=5:no1=1:sj=0 else if (ji7<40 or ji8<40) and xx>=0 and sj>0 then xx=0:yy=0:jp1=0:jp2=0:no=7:no1=0:sj=0
  161.  2219 /*
  162.  2220 if (jp1>7 or jp2>7 or yy>0) and sj=0 and (ji1<40 or ji2<40) then jp1=0:jp2=0:no=10:xx=0:yy=0 else if jp1=0 and jp2=0 and sj=0 and ji1>39 and ji2>39 and no<>7 then xx=0:yy=8:no=5
  163.  2225 if jp1=0 and jp2=0 and sj=0 and ji1<40 and ji2<40 and no<>10 then xx=0:yy=0:no=10
  164.  2230 if yy>0 and (ji1<40 or ji2<40) then jp1=0:jp2=0:yy=0:no=5 else if yy>8 and (ji3<40 or ji4<40) then jp1=0:jp2=0:yy=8:no=5
  165.  2240 if xx<0 and (ji5<40 or ji6<40) then xx=0:sj=0 else if xx>0 and (ji7<40 or ji8<40) then xx=0:sj=0
  166.  2245 if (ji1<40 or ji2<40) and jp1=0 and jp2=0 and sj=0 then y=int(y/8)*8+((int(r/4)) mod 8):no=10
  167.  2300 /*
  168.  2310 /*
  169.  2400 i2=int(x/8)-1:i3=((int(y/8)+(63-int(z1/8))+0) mod 64)
  170.  2405 pi1=bg_get(1,i2,i3):pc1=int(pi1/256):pi1=(pi1 mod 256):if pi1>55 and pi1<60 then l_on()
  171.  2409 /*
  172.  2410 i2=int(x/8)+1:i3=((int(y/8)+(63-int(z1/8))+0) mod 64)
  173.  2415 pi1=bg_get(1,i2,i3):pc1=int(pi1/256):pi1=(pi1 mod 256):if pi1>55 and pi1<60 then l_on()
  174.  2419 /*
  175.  2420 i2=int(x/8)-1:i3=((int(y/8)+(63-int(z1/8))+2) mod 64)
  176.  2425 pi1=bg_get(1,i2,i3):pc1=int(pi1/256):pi1=(pi1 mod 256):if pi1>55 and pi1<60 then l_on()
  177.  2429 /*
  178.  2430 i2=int(x/8)+1:i3=((int(y/8)+(63-int(z1/8))+2) mod 64)
  179.  2435 pi1=bg_get(1,i2,i3):pc1=int(pi1/256):pi1=(pi1 mod 256):if pi1>55 and pi1<60 then l_on()
  180.  2439 /*
  181.  2450 if mk(0)>0 then mk(0)=mk(0)-1:sp_on(5,7):i=mk(2)+(tim1 mod 2):sp_set(5,mk(1),i,mk(3)):sp_set(6,mk(1)+16,i,mk(4)):sp_set(7,mk(1)+32,i,mk(5)) else sp_off(5,7)
  182.  2500 /*srol1()
  183.  2700 /*if y<50 then spd=0 else if y<120 then spd=1 else spd=5
  184.  2710 /*tim1=tim1+1:if spd=0 then srol1():srol1():srol1():srol1():srol1() else if (tim1 mod spd)=0 then srol1()
  185.  2790 for i=0 to wait1:next
  186.  2800 goto 2010
  187.  2900 endfunc
  188.  3000 func kyin()       /*=================================
  189.  3010 ik=inkey$(0):st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4)
  190.  3020 if ik<>"" or bu<>0 or m3<>0 or m4<>0 then goto 3010
  191.  3030 ik=inkey$(0):st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4)
  192.  3040 if ik="" and bu=0 and m3=0 and m4=0 then goto 3030
  193.  3050 endfunc
  194.  3060 func stclr()      /*=================================
  195.  3065 m_stop(1,2,3,4,5,6,7,8)
  196.  3070 home(0,256,256):bg_fill(1,256):bg_scroll(0,0,0):bg_scroll(1,0,0):no=0:tim=0:no3=0
  197.  3075 mes="                                ":mog=0:mox=0:moy=30:moc=10:jiput()
  198.  3080 mes="stage "+str$(mno)+" clear !":mog=0:mox=8:moy=13:moc=1:jiput()
  199.  3082 no=life
  200.  3085 mes=left$(str$(sc)+"      ",6):mog=0:mox=7:moy=31:moc=1:jiput()
  201.  3086 mes=left$(str$(life)+"    ",3):mog=0:mox=19:moy=31:moc=3:jiput()
  202.  3087 if life>0 then life=life-1:sc=sc+10:goto 3085
  203.  3090 mes="stage "+str$(mno)+" ライトストーン = "+str$(bol1):mog=0:mox=6:moy=26:moc=4:jiput()
  204.  3095 mes="you get ライトストーン = "+str$(bol):mog=0:mox=6:moy=27:moc=6:jiput()
  205.  3100 if bol=bol1 and bol>0 then mes="stone パ-フェクト ボーナス +2000":mog=0:mox=3:moy=28:moc=7:jiput():sc=sc+2000
  206.  3102 if no=lmx then mes="life パ-フェクト ボーナス +1000":mog=0:mox=3:moy=29:moc=5:jiput():sc=sc+1000
  207.  3105 mes=left$(str$(sc)+"      ",6):mog=0:mox=7:moy=31:moc=1:jiput()
  208.  3106 for i=0 to (gc-1):bg_put(1,(i mod 32),int(i/32),g(i)*256+2):next
  209.  3110 ik=inkey$(0):st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4)
  210.  3120 if ik<>"" or bu<>0 or m3<>0 or m4<>0 then goto 3110
  211.  3121 tim=tim+1:if (tim mod 2)=0 then goto 3122 else goto 3124
  212.  3122 if (gc-1)>=(no3) then bx(no)=(no3 mod 32)*8+16:by(no)=int(no3/32)*8+16:bc(no)=g(no3):ba(no)=int(rnd()*8-3):bb(no)=1:bg_put(1,(no3 mod 32),int(no3/32),256):no=no+1:no3=no3+1
  213.  3123 if no>30 then no=0
  214.  3124 for i=0 to 30
  215.  3125 sp_on(70+i,70+i):sp_set(70+i,bx(i),by(i),bc(i)*256+15):bx(i)=bx(i)+ba(i):by(i)=by(i)+bb(i):bb(i)=bb(i)+1
  216.  3126 if bx(i)<0 then bx(i)=0:ba(i)=0 else if bx(i)>272 then bx(i)=272:ba(i)=0
  217.  3127 if by(i)<0 then by(i)=0:bb(i)=1 else if by(i)>272 then by(i)=272:bb(i)=0
  218.  3128 next
  219.  3129 for i=0 to ((wait1+2)/2):next
  220.  3130 ik=inkey$(0):st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4)
  221.  3140 if ik="" and bu=0 and m3=0 and m4=0 then goto 3121
  222.  3145 sp_off(70,100):bg_fill(0,256)
  223.  3150 mno=mno+1:if mno>5 then mno=1:lmx=1
  224.  3151 r=960:r1=32:z2=8:sp_disp(1):x=56:y=152:no=10:dmg=0:life=lmx:gc=0:tim1=0:jp1=0:jp2=0:sj=0:for i=0 to 5:mk(i)=0:hit(i)=0:next:sp_on(10,13)
  225.  3152 sp_on(10,13):sp_set(10,x,y+4,ch_l(no,0)+col*256):sp_set(11,x+16,y+4,ch_l(no,1)+col*256):sp_set(12,x,y+20,ch_l(no,2)+col*256):sp_set(13,x+16,y+20,ch_l(no,3)+col*256)
  226.  3155 for i=0 to 31:for i1=0 to 31:bg_put(m,i1,(63-i),map(mno,i,i1)):next:next:count1():bg_scroll(1,0,256):home(0,256,0)
  227.  3156 mes="DdamageDDdamageDDdamageDDdamageD":mog=0:mox=0:moy=30:moc=10:jiput()
  228.  3160 mes="score=       life=     (     )":mog=0:mox=0:moy=31:moc=2:jiput()
  229.  3165 mes=left$(str$(sc)+"      ",6):mog=0:mox=7:moy=31:moc=1:jiput()
  230.  3170 mes=left$(str$(life)+"    ",3):mog=0:mox=19:moy=31:moc=3:jiput()
  231.  3175 ik=inkey$(0):st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4)
  232.  3176 if ik="" and bu=0 and m3=0 and m4=0 then goto 3175
  233.  3180 home(0,256,0):for i=0 to 5:hit(i)=0:next
  234.  3185 m_play(1,2,3,4,5,6,7,8)
  235.  3190 endfunc
  236.  3200 func count1()      /*---------------------------------
  237.  3210 bol=0:bol1=0
  238.  3220 for i=0 to 500:for i1=0 to 31:i2=(map(mno,i,i1) mod 256)
  239.  3230 if i2=56 then bol1=bol1+1
  240.  3240 next:next
  241.  3250 /*locate 2,0:print using"####";bol1
  242.  3290 endfunc
  243.  3400 func kg_put()      /*---------------------------------
  244.  3410 if (tim1 mod 2)=0 then goto 3415 else goto 3490
  245.  3415 if x=kagex(kage) then goto 3490
  246.  3420 kage=kage+1:if kage>20 then kage=0
  247.  3430 kagex(kage)=x:kagey(kage)=y:kagec(kage)=no:kagem(kage)=no1
  248.  3440 sp_on(kage*4+20,kage*4+23):if no1=0 then goto 3450 else goto 3460
  249.  3450 sp_on(kage*4+20,kage*4+23):sp_set(kage*4+20,x,y+4,ch_l(no,0)+8*256):sp_set(kage*4+21,x+16,y+4,ch_l(no,1)+8*256):sp_set(kage*4+22,x,y+20,ch_l(no,2)+8*256):sp_set(kage*4+23,x+16,y+20,ch_l(no,3)+8*256):goto 3470
  250.  3460 sp_on(kage*4+20,kage*4+23):sp_set(kage*4+20,x,y+4,ch_r(no,0)+8*256):sp_set(kage*4+21,x+16,y+4,ch_r(no,1)+8*256):sp_set(kage*4+22,x,y+20,ch_r(no,2)+8*256):sp_set(kage*4+23,x+16,y+20,ch_r(no,3)+8*256):goto 3470
  251.  3470 kage1=kage-kmax:if kage1<0 then kage1=kage1+21
  252.  3480 sp_off(kage1*4+20,kage1*4+23)
  253.  3490 endfunc
  254.  3500 func pause()       /********************************
  255.  3505 m_stop(1,2,3,4,5,6,7,8):cls
  256.  3506 if no1=0 then sp_on(10,13):sp_set(10,x,y+4,ch_l(no,0)+col*256):sp_set(11,x+16,y+4,ch_l(no,1)+col*256):sp_set(12,x,y+20,ch_l(no,2)+col*256):sp_set(13,x+16,y+20,ch_l(no,3)+col*256)
  257.  3507 if no1<>0 then sp_on(10,13):sp_set(10,x,y+4,ch_r(no,0)+col*256):sp_set(11,x+16,y+4,ch_r(no,1)+col*256):sp_set(12,x,y+20,ch_r(no,2)+col*256):sp_set(13,x+16,y+20,ch_r(no,3)+col*256)
  258.  3510 ik=inkey$(0):if ik<>"" then goto 3510
  259.  3520 ik=inkey$(0):if ik="" then goto 3520 else if ik=chr$(27) then goto 3580
  260.  3530 if  ik="1" or ik="2" or ik="3" or ik="4" or ik="5" or ik="6" or ik="7" then col=val(ik):goto 3506
  261.  3540 if ik="W" or ik="w" or ik="テ" then sp_disp(0):locate 4,0:print"WAIT=("+str$(wait1)+") =";:input wait1:sp_disp(1)
  262.  3550 if ik="K" or ik="k" or ik="ノ" then sp_disp(0):locate 4,0:print"KAGE("+str$(kmax)+") =";:input kmax:sp_disp(1)
  263.  3580 ik="":cls:m_cont(1,2,3,4,5,6,7,8)
  264.  3590 endfunc
  265.  3800 func l_on() /*=========================================
  266.  3810 i4=pi1:i5=pc1:hit(5)=hit(4):hit(4)=hit(3):hit(3)=hit(2):hit(2)=hit(1):hit(1)=i5:hit(0)=hit(0)+1:if hit(0)>5 then hit(0)=5
  267.  3815 for i=1 to hit(0):bg_put(0,23+i,31,256*hit(i)+2):next
  268.  3816 if hit(1)>0 and hit(2)>0 and hit(3)>0 and hit(4)>0 and hit(5)>0 then sc=sc+100:mk(0)=20:mk(1)=x+8:mk(2)=y:mk(3)=104+256*i5:mk(4)=256*i5+127:mk(5)=256*i5+127
  269.  3820 if hit(1)=hit(2) and hit(2)=hit(3) and hit(3)=hit(4) and hit(4)=hit(5) then sc=sc+500:mk(0)=20:mk(1)=x-16:mk(2)=y:mk(3)=105+256*i5:mk(4)=256*i5+106:mk(5)=256*i5+107
  270.  3824 i6=i3+1:if i6>63 then i6=i6-64
  271.  3825 i7=i3-1:if i7<0 then i7=i7+64
  272.  3830 if (pi1 mod 4)=0 then bg_put(m,i2,i6,61+256*i5):bg_put(m,i2+1,i6,63+256*i5):bg_put(m,i2,i3,60+256*i5):bg_put(m,i2+1,i3,62+256*i5)
  273.  3840 if (pi1 mod 4)=1 then bg_put(m,i2,i3,61+256*i5):bg_put(m,i2+1,i3,63+256*i5):bg_put(m,i2,i7,60+256*i5):bg_put(m,i2+1,i7,62+256*i5)
  274.  3850 if (pi1 mod 4)=2 then bg_put(m,i2-1,i6,61+256*i5):bg_put(m,i2,i6,63+256*i5):bg_put(m,i2-1,i3,60+256*i5):bg_put(m,i2,i3,62+256*i5)
  275.  3860 if (pi1 mod 4)=3 then bg_put(m,i2-1,i3,61+256*i5):bg_put(m,i2,i3,63+256*i5):bg_put(m,i2-1,i7,60+256*i5):bg_put(m,i2,i7,62+256*i5)
  276.  3870 sc=sc+50+int((256-y)/30)*5:g(gc)=i5:gc=gc+1
  277.  3875 bol=bol+1:a_play(pcm1,4,3)
  278.  3880 mes=left$(str$(sc)+"      ",6):mog=0:mox=7:moy=31:moc=1:jiput()
  279.  3890 endfunc
  280.  3900 func hitclr()      /*===================================
  281.  3910 for i=1 to 5:hit(i)=0:bg_put(0,23+i,31,256):next:hit(0)=0
  282.  3990 endfunc
  283.  4000 func srol1()       /*===================================
  284.  4010 r2=0
  285.  4020 rx=(r mod 32):ry=63-(r1 mod 64)
  286.  4025 /*locate 3,0:print using"#### ### ##### ## ##";r,r1,map(r1,rx),rx,ry
  287.  4030 bg_put(m,rx,ry,map(mno,r1,rx))
  288.  4040 r=r+1:if (r mod 32)=0 then r1=r1+1
  289.  4045 if r1>=1000 then r1=0
  290.  4050 if r2<3 then r2=r2+1:goto 4020
  291.  4060 z1=((int(r/4)) mod 512)
  292.  4070 bg_scroll(m,0,(511-z1))
  293.  4080 y=y+1:if y>224 then y=224
  294.  4090 endfunc
  295.  4100 func hi_put()     /************************************
  296.  4110 bg_fill(0,256):bg_fill(1,256):bg_scroll(0,0,0):sp_off(0,127):sp_disp(1)
  297.  4120 no2=0:if sc>hsc(10) and tres1=0 then no2=10:goto 4130 else goto 4210
  298.  4130 if sc>hsc(1) then for i=0 to 8:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(1)=sc:hina(1)="":hico(1)=col:no2=1:goto 4210
  299.  4132 if sc>hsc(2) then for i=0 to 7:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(2)=sc:hina(2)="":hico(2)=col:no2=2:goto 4210
  300.  4134 if sc>hsc(3) then for i=0 to 6:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(3)=sc:hina(3)="":hico(3)=col:no2=3:goto 4210
  301.  4136 if sc>hsc(4) then for i=0 to 5:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(4)=sc:hina(4)="":hico(4)=col:no2=4:goto 4210
  302.  4138 if sc>hsc(5) then for i=0 to 4:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(5)=sc:hina(5)="":hico(5)=col:no2=5:goto 4210
  303.  4140 if sc>hsc(6) then for i=0 to 3:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(6)=sc:hina(6)="":hico(6)=col:no2=6:goto 4210
  304.  4142 if sc>hsc(7) then for i=0 to 2:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(7)=sc:hina(7)="":hico(7)=col:no2=7:goto 4210
  305.  4144 if sc>hsc(8) then for i=0 to 1:hsc(10-i)=hsc(9-i):hina(10-i)=hina(9-i):hico(10-i)=hico(9-i):next:hsc(8)=sc:hina(8)="":hico(8)=col:no2=8:goto 4210
  306.  4146 if sc>hsc(9) then hsc(10)=hsc(9):hina(10)=hina(9):hico(10)=hico(9):hsc(9)=sc:hina(9)="":hico(9)=col:no2=9 else hsc(10)=sc:hina(10)="":hico(10)=col:no2=10
  307.  4148 /*
  308.  4200 /*
  309.  4210 bg_fill(0,256):bg_fill(1,256):bg_scroll(0,0,0):sp_off(0,127)
  310.  4220 for i=32 to 63:for i1=0 to 31:bg_put(0,i,i1,256*8+1):next:next
  311.  4230 mes="[ ハイスコア ランキング top10 プレイヤーズ]":mog=0:mox=33:moy=1:moc=1:jiput()
  312.  4240 mes="no  score     player name     ":mog=0:mox=33:moy=3:moc=2:jiput():no=1
  313.  4245 mes="  ナニカ ボタンヲオスト game ニ モドリマス  ":mog=0:mox=33:moy=30:moc=7:jiput():no=1
  314.  4250 mes=left$(right$(" "+str$(no),2)+right$("      "+str$(hsc(no)),7)+" "+hina(no)+"                    ",30):mog=0:mox=33:moy=3+no*2:moc=hico(no):jiput()
  315.  4252 st=(no mod 2)+10
  316.  4253 mes=right$(" "+str$(no),2):mog=0:mox=30+no*3:moy=25:jiput()
  317.  4255 sp_set(10+no*4,no*24-4,224,ch_l(st,0)+moc*256):sp_set(11+no*4,12+no*24,224,ch_l(st,1)+moc*256):sp_set(12+no*4,no*24-4,240,ch_l(st,2)+moc*256):sp_set(13+no*4,12+no*24,240,ch_l(st,3)+moc*256)
  318.  4260 no=no+1:if no<11 then goto 4250 else no=0
  319.  4290 home(0,256,0):for i=0 to 256:bg_scroll(0,i,0):next:sp_on(14,53)
  320.  4295 if no2>0 then goto 4300 else goto 4400
  321.  4300 sp_off(0,127):cls:no=0:for i=33 to 62:for i1=25 to 30:bg_put(0,i,i1,256):next:next:msarea(9,216,247,255):setmspos(10,220)
  322.  4305 mes=" ナマエヲ ニュウリョクシテクダサイ。(20モジマデ)":mog=0:mox=33:moy=30:moc=7:jiput():no=1
  323.  4310 mog=0:mox=33+(no mod 30):moy=25+int(no/30):moc=col:mes=mid$(mes2,no+1,1):jiput()
  324.  4320 no=no+1:if no>len(mes2) then no=0 else goto 4310
  325.  4325 mes="end end end end end":mog=0:mox=44:moy=29:moc=10:jiput()
  326.  4330 ik=inkey$(0):st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4):mspos(mx,my)
  327.  4331 if st=4 and mx>16 then mx=mx-8 else if st=6 and mx<240 then mx=mx+8 else if st=2 and my<248 then my=my+8 else if st=8 and my>223 then my=my-8
  328.  4332 if st=2 or st=4 or st=6 or st=8 then setmspos(mx,my):kb()
  329.  4335 mx=int(mx/8)*8:my=int(my/8)*8:sp_on(0,1):sp_set(0,mx+15,my-1,256*int(rnd()*7+1)+123):sp_set(1,103+len(hina(no2))*8,no2*16+39,256*int(rnd()*7+1)+123)
  330.  4340 if ik=chr$(3) or ik=chr$(27) or ik=chr$(13) then sp_off(0,1):sp_on(14,53):for i=33 to 62:for i1=25 to 30:bg_put(0,i,i1,256*8+1):next:next:goto 4395
  331.  4342 if (m3<>0 or bu=bu1) and b=10 then sp_off(0,1):sp_on(14,53):for i=33 to 62:for i1=25 to 30:bg_put(0,i,i1,256*8+1):next:next:goto 4395
  332.  4345 i=len(hina(no2)):mog=0:moc=col
  333.  4350 if (m3<>0 or bu=bu1) and i<20 then mes=mid$(mes2,((int((mx-8)/8)) mod 30)+(int(my/8)-27)*30+1,1):hina(no2)=hina(no2)+mes:mog=0:mox=len(hina(no2))+42:moy=no2*2+3:moc=col:jiput():kb()
  334.  4355 i=len(hina(no2)):mog=0:moc=col
  335.  4360 if (m4<>0 or bu=bu2 or ik=chr$(29)) and i=1 then hina(no2)="":mes="  ":mox=42:moy=no2*2+3:jiput():kb() else if (m4<>0 or bu=bu2 or ik=chr$(29)) and i>1 then hina(no2)=left$(hina(no2),(i-1)):mes=" ":mox=42+i:moy=no2*2+3:jiput():kb()
  336.  4365 /*
  337.  4370 a=bg_get(0,int(mx/8)+32,int(my/8)-2):b=int(a/256)
  338.  4380 /*if (m3<>0 or bu=bu1) and b=10 then sp_off(0,1):sp_on(14,53):for i=33 to 62:for i1=25 to 30:bg_put(0,i,i1,256*8+1):next:next:goto 4395
  339.  4390 goto 4330
  340.  4395 mes="  ナニカ ボタンヲオスト game ニ モドリマス  ":mog=0:mox=33:moy=30:moc=7:jiput():no=1
  341.  4396 mes=right$(" "+str$(no),2):mog=0:mox=30+no*3:moy=25:jiput()
  342.  4397 no=no+1:if no<11 then goto 4396
  343.  4400 if smode=1 then d_save()
  344.  4410 kyin()
  345.  4420 no=0:sc=0:home(0,256,0):bg_scroll(0,0,0):cls:sp_off(0,127)
  346.  4430 /*
  347.  4490 endfunc
  348.  4500 func jiput()       /***********************************
  349.  4510 i1=0:i2=len(mes)-1
  350.  4520 mes1=mid$(mes,i1+1,1)
  351.  4530 i3=instr(1,mes2,mes1):if i3<1 then i3=1
  352.  4535 if moc=0 then i4=int(rnd()*6+1) else i4=moc
  353.  4540 bg_put(mog,mox+i1,moy,i4*256+i3+63)
  354.  4550 if i1<i2 then i1=i1+1:goto 4520
  355.  4560 i1=0:i2=0:i3=0:i4=0:mes1="":mes=""
  356.  4590 endfunc
  357.  4600 func trs_save()   /*-----------------------------------
  358.  4610 no=0:for i1=1 to 5:for i=0 to 3000:tresd(no)=tres(i1,i):no=no+1:next:next
  359.  4615 locate 0,13:print"PUSH トレース SAVE NO (0-9)"
  360.  4620 ik=inkey$(0):if ik="1" or ik="2" or ik="3" or ik="4" or ik="5" or ik="6" or ik="7" or ik="8" or ik="9" or ik="0" then goto 4630
  361.  4625 if ik=chr$(27) or ik=chr$(3) or ik=chr$(13) or ik=" " then goto 4670 else goto 4620
  362.  4630 fp=fopen("POP2TRES.NO"+ik,"c")
  363.  4640 fwrite(tresd,15100,fp)
  364.  4650 fclose(fp)
  365.  4670 cls
  366.  4690 endfunc
  367.  4700 func trs_load()   /*-----------------------------------
  368.  4710 locate 0,13:print"PUSH トレース LOAD NO (0-9)"
  369.  4712 ik=inkey$(0):if ik="1" or ik="2" or ik="3" or ik="4" or ik="5" or ik="6" or ik="7" or ik="8" or ik="9" or ik="0" then goto 4720
  370.  4715 if ik=chr$(27) or ik=chr$(3) or ik=chr$(13) or ik=" " then goto 4770 else goto 4712
  371.  4720 fp=fopen("POP2TRES.NO"+ik,"r")
  372.  4730 fread(tresd,15100,fp)
  373.  4740 fclose(fp)
  374.  4750 no=0:for i1=1 to 5:for i=0 to 3000:tres(i1,i)=tresd(no):no=no+1:next:next:tres1=1
  375.  4770 cls
  376.  4790 endfunc
  377.  4800 func kb()         /*=================================
  378.  4810 ik=inkey$(0):st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4)
  379.  4820 if ik<>"" or bu<>0 or st<>0 or m3<>0 or m4<>0 then goto 4810
  380.  4840 endfunc
  381.  5000 func edt() /*------------------------------------------
  382.  5010 m_stop(1,2,3,4,5,6,7,8):bg_fill(1,256):bg_fill(0,256):bg_scroll(0,0,0):bg_scroll(1,0,0):iro=1:sp_off(0,100)
  383.  5020 r=960:r1=32:z2=8:sp_disp(1):x=56:y=152:no=10:dmg=0:life=lmx:gc=0:tim1=0:jp1=0:jp2=0:sj=0:for i=0 to 5:mk(i)=0:hit(i)=0:next:sp_on(10,13)
  384.  5030 pt1=312:pt2=296:nn=0
  385.  5040 /*
  386.  5050 for i=0 to 27:for i1=0 to 1:bg_put(n,i+2,i1+2,i*2+i1+4+256*iro):next:next
  387.  5060 mes="left=(  )   right=(  )":mox=0:moy=30:moc=1:jiput():bg_put(n,6,30,pt1):bg_put(n,7,30,pt1+2):bg_put(n,6,31,pt1+1):bg_put(n,7,31,pt1+3):bg_put(n,19,30,pt2):bg_put(n,20,30,pt2+2):bg_put(n,19,31,pt2+1):bg_put(n,20,31,pt2+3)
  388.  5070 /*
  389.  5090 gm=1:msarea(32,32,255,40):mx=40:my=40:setmspos(mx,my):sp_on(0,0):sp_set(0,mx,my,124+256)
  390.  5100 /*
  391.  5110 st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4):mspos(mx,my)
  392.  5120 ik=inkey$(0):if ik=chr$(27) or ik=chr$(3) then goto 5800 else if ik="S" or ik="s" or ik="ト" then map_save() else if ik="l" or ik="L" or ik="リ" then map_load():goto 5050
  393.  5122 if ik="1" then iro=1 else if ik="2" then iro=2 else if ik="3" then iro=3 else if ik="4" then iro=4 else if ik="5" then iro=5 else if ik="6" then iro=6 else if ik="7" then iro=7
  394.  5123 if (ik="1" or ik="2"  or ik="3" or ik="4" or ik="5" or ik="6" or ik="7") and gm=1 then goto 5050
  395.  5124 if (ik="1" or ik="2"  or ik="3" or ik="4" or ik="5" or ik="6" or ik="7") and gm=0 then i=(pt1 mod 256):pt1=i+256*iro:i=(pt2 mod 256):pt2=i+256*iro
  396.  5130 if gm=1 then sp_on(0,0):mx=int(mx/(8+gm*8))*(8+gm*8)-1:my=int(my/(8+gm*8))*(8+gm*8)-1:sp_set(0,mx,my,124+256):i1=int(mx/(8+gm*0))-1:i2=int(my/(8+gm*0))-1
  397.  5135 if gm=0 then sp_on(0,0):mx=int(mx/8)*8-1:my=int(my/8)*8-1:sp_set(0,mx,my,124+256):i1=int(mx/8)-1:i2=int(my/8)-1
  398.  5140 i3=bg_get(n,i1,i2):i4=int(i3/256)
  399.  5150 if m3<>0 and gm=1 then pt1=i3:bg_put(n,6,30,pt1):bg_put(n,7,30,pt1+2):bg_put(n,6,31,pt1+1):bg_put(n,7,31,pt1+3)
  400.  5151 if m4<>0 and gm=1 then pt2=i3:bg_put(n,19,30,pt2):bg_put(n,20,30,pt2+2):bg_put(n,19,31,pt2+1):bg_put(n,20,31,pt2+3)
  401.  5154 /*
  402.  5155 if m3<>0 and gm=0 then goto 5300
  403.  5156 if m4<>0 and gm=0 then goto 5350
  404.  5160 if (ik="," or ik="z" or ik="Z" or ik="ツ") and gm=1 then goto 5200 else if (ik="." or ik="x" or ik="X" or ik="サ") and gm=0 then gm=1:bg_fill(1,256):goto 5250
  405.  5165 if ik=chr$(9) and gm=0 then ik="":mojiput() else if ik="/" or ik="*" then cls:locate 1,0:print"MAP("+str$(mno)+") =":locate 12,0:input mno:cls
  406.  5170 if ik=chr$(31) and gm=0 and nn<1000 then d_rol() else if ik=chr$(30) and gm=0 and nn>0 then u_rol()
  407.  5175 if ik=chr$(31) and gm=0 and nn<1000 then d_rol() else if ik=chr$(30) and gm=0 and nn>0 then u_rol()
  408.  5176 if ik=chr$(12) then goto 5400
  409.  5180 locate 2,0:print using"## ## #### NN=####";i1,i2,i3,nn
  410.  5190 goto 5110
  411.  5195 /*****************************************************
  412.  5200 bg_fill(0,256):gm=0:msarea(16,16,263,263)
  413.  5210 for i=0 to 31:for i1=0 to 31:bg_put(1,i1,(31-i),map(mno,i+nn,i1)):next:next
  414.  5220 msstat(m1,m2,m3,m4):if m4<>0 then goto 5220
  415.  5230 goto 5110
  416.  5250 mes="left=(  )   right=(  )":mog=0:mox=0:moy=30:moc=1:jiput()
  417.  5255 bg_put(n,6,30,pt1):bg_put(n,7,30,pt1+2):bg_put(n,6,31,pt1+1):bg_put(n,7,31,pt1+3):bg_put(n,19,30,pt2):bg_put(n,20,30,pt2+2):bg_put(n,19,31,pt2+1):bg_put(n,20,31,pt2+3)
  418.  5260 for i=0 to 27:for i1=0 to 1:bg_put(n,i+2,i1+2,i*2+i1+4+256):next:next
  419.  5270 gm=1:msarea(32,32,255,40):mx=40:my=40:setmspos(mx,my):sp_on(0,0):sp_set(0,mx,my,124+256)
  420.  5275 /*mes="left=(  )   right=(  )":mox=0:moy=30:moc=1:jiput():bg_put(n,6,30,pt1):bg_put(n,7,30,pt1+2):bg_put(n,6,31,pt1+1):bg_put(n,7,31,pt1+3):bg_put(n,19,30,pt2):bg_put(n,20,30,pt2+2):bg_put(n,19,31,pt2+1):bg_put(n,20,31,pt2+3)
  421.  5280 msstat(m1,m2,m3,m4):if m4<>0 then goto 5280
  422.  5290 goto 5110
  423.  5295 /*-----------------------------------------------
  424.  5300 bg_put(m,i1,i2,pt1):bg_put(m,i1+1,i2,pt1+2):bg_put(m,i1,i2+1,pt1+1):bg_put(m,i1+1,i2+1,pt1+3)
  425.  5310 map(mno,nn+(31-i2),i1)=pt1:map(mno,nn+(31-i2),i1+1)=pt1+2:map(mno,nn+(31-i2)-1,i1)=pt1+1:map(mno,nn+(31-i2)-1,i1+1)=pt1+3
  426.  5320 /*
  427.  5330 msstat(m1,m2,m3,m4):if m3<>0 then goto 5330
  428.  5340 goto 5110
  429.  5350 bg_put(m,i1,i2,pt2):bg_put(m,i1+1,i2,pt2+2):bg_put(m,i1,i2+1,pt2+1):bg_put(m,i1+1,i2+1,pt2+3)
  430.  5360 map(mno,nn+(31-i2),i1)=pt2:map(mno,nn+(31-i2),i1+1)=pt2+2:map(mno,nn+(31-i2)-1,i1)=pt2+1:map(mno,nn+(31-i2)-1,i1+1)=pt2+3
  431.  5370 /*
  432.  5380 msstat(m1,m2,m3,m4):if m3<>0 then goto 5380
  433.  5390 goto 5110
  434.  5395 /*--------------------------------------------------
  435.  5400 for i=0 to 500:for i1=0 to 31:map(mno,i,i1)=64:next
  436.  5410 if (i mod 2)=0 then map(mno,i,0)=17+256:map(mno,i,1)=19+256:map(mno,i,30)=17+256:map(mno,i,31)=19+256
  437.  5420 if (i mod 2)=1 then map(mno,i,0)=16+256:map(mno,i,1)=18+256:map(mno,i,30)=16+256:map(mno,i,31)=18+256
  438.  5430 next
  439.  5440 ik=inkey$(0):if ik<>"" then goto 5440
  440.  5450 goto 5110
  441.  5790 /*--------------------------------------------------
  442.  5800 bg_fill(0,256):bg_fill(1,256):cls
  443.  5810 sp_off(0,127):bg_scroll(0,0,0):bg_scroll(1,0,0)
  444.  5820 for i=0 to 31:for i1=0 to 31:bg_put(m,i1,(63-i),map(mno,i,i1)):next:next
  445.  5830 r=960:r1=32:z2=8:sp_disp(1):x=56:y=152:no=10:dmg=0:life=lmx:gc=0:tim1=0:jp1=0:jp2=0:sj=0:for i=0 to 5:mk(i)=0:hit(i)=0:next:sp_on(10,13)
  446.  5840 mes="score=       life=     (     )":mog=0:mox=0:moy=31:moc=2:jiput()
  447.  5845 mes="DdamageDDdamageDDdamageDDdamageD":mog=0:mox=0:moy=30:moc=10:jiput()
  448.  5850 mes=left$(str$(sc)+"      ",6):mog=0:mox=7:moy=31:moc=1:jiput()
  449.  5860 mes=left$(str$(life)+"    ",3):mog=0:mox=19:moy=31:moc=3:jiput()
  450.  5870 m_play(1,2,3,4,5,6,7,8)
  451.  5900 endfunc
  452.  6000 func d_rol()       /*----------------------------------
  453.  6010 nn=nn+8:if nn>1000 then no=1000
  454.  6020 for i=0 to 31:for i1=0 to 31:bg_put(m,i1,(31-i),map(mno,i+nn,i1)):next:next
  455.  6030 endfunc
  456.  6100 func u_rol()       /*----------------------------------
  457.  6110 nn=nn-8:if nn<0 then no=0
  458.  6120 for i=0 to 31:for i1=0 to 31:bg_put(m,i1,(31-i),map(mno,i+nn,i1)):next:next
  459.  6130 endfunc
  460.  6200 func map_save()    /*----------------------------------
  461.  6210 i=0:for i1=0 to 499:for i2=0 to 31:mapdata(i)=map(mno,i1,i2):i=i+1:next:next
  462.  6220 fp=fopen("POP2MAP.NO"+str$(mno),"c")
  463.  6230 fwrite(mapdata,16000,fp)
  464.  6240 fclose(fp)
  465.  6290 endfunc
  466.  6300 func map_load()    /*----------------------------------
  467.  6310 fp=fopen("POP2MAP.NO"+str$(mno),"r")
  468.  6320 fread(mapdata,16000,fp)
  469.  6330 fclose(fp)
  470.  6340 i=0:for i1=0 to 499:for i2=0 to 31:map(mno,i1,i2)=mapdata(i):i=i+1:next:next
  471.  6390 endfunc
  472.  6400 func mojiput()     /*----------------------------------
  473.  6405 i5=mx:i6=my:sp_on(0,0):sp_set(0,i5+8,i6,124+256*2):i1=int(i5/8)-1:i2=int(i6/8)-1
  474.  6410 ik=inkey$(0):if ik="" then goto 6410 else if ik=chr$(9) or ik=chr$(13) or ik=chr$(27) then goto 6580 else if ik=chr$(29) or ik=chr$(8) or ik=chr$(127) then bg_put(1,(i1-1),i2,256+64):map(mno,nn+(31-i2),i1)=256+64:i1=i1-1:goto 6455
  475.  6420 i3=instr(1,mes2,ik):if i3<1 then i3=1
  476.  6430 i4=iro*256+i3+63:bg_put(1,i1,i2,iro*256+i3+63)
  477.  6440 map(mno,nn+(31-i2),i1)=i4
  478.  6450 i1=i1+1:if i1>30 then i1=30
  479.  6455 i5=(i1+1)*8
  480.  6460 sp_on(0,0):sp_set(0,i5+8,i6,124+256*2)
  481.  6470 /*
  482.  6490 goto 6410
  483.  6580 ik="":cls
  484.  6590 endfunc
  485.  6600 func map_load1()    /*----------------------------------
  486.  6610 mno=1
  487.  6620 fp=fopen("POP2MAP.NO"+str$(mno),"r")
  488.  6630 fread(mapdata,16000,fp)
  489.  6640 fclose(fp)
  490.  6650 i=0:for i1=0 to 499:for i2=0 to 31:map(mno,i1,i2)=mapdata(i):i=i+1:next:next
  491.  6660 mno=mno+1:if mno<6 then goto 6620 else mno=1
  492.  6690 endfunc
  493.  7000 func conf()        /*----------------------------------
  494.  7010 cls:sp_disp(0):home(0,256,0)
  495.  7020 locate 0,0:print"設定変更画面"
  496.  7030 locate 0,1:print"PUSH EDIT No(1-5) or ESC=EXIT"
  497.  7040 locate 0,3:print"1,PLAYER COLOR = ";:print str$(col)
  498.  7050 locate 0,5:print"2,GAME WAIT = ";:print str$(wait1)
  499.  7060 locate 0,7:print"3,DATA SAVE MODE = ";:print smo(smode)
  500.  7070 locate 0,9:print"4,TRIGGER MODE = ";:print trigm(bu1)
  501.  7080 locate 0,11:print"5,トレース  MODE = ";:print trs(tres1)
  502.  7090 locate 0,13:print"トレースDATA [S]ave [L]oad"
  503.  7200 ik=inkey$(0):if ik="" then goto 7200
  504.  7205 locate 0,13:print"                       "
  505.  7210 if ik=chr$(27) or ik=chr$(3) or ik=chr$(22) then goto 7800
  506.  7220 if ik="1" then locate 0,13:print"COLOR(1-7) = ";:input col
  507.  7230 if ik="2" then locate 0,13:print"WAIT = ";:input wait1
  508.  7240 if ik="3" then locate 0,13:print"SAVE MODE(0-1) = ";:input smode
  509.  7250 if ik="4" then locate 0,13:print"TRIGGER(1-2) = ";:input bu1
  510.  7260 if ik="5" then locate 0,13:print"トレース(0-1) = ";:input tres1
  511.  7270 if ik="L" or ik="l" then trs_load() else if smode=1 and (ik="s" or ik="S") then trs_save()
  512.  7300 if col<=0 or col>7 then col=7
  513.  7310 if wait<0 then wait=0
  514.  7320 if smode<0 or smode>1 then smode=0
  515.  7330 if bu1=1 then bu1=1:bu2=2 else bu1=2:bu2=1
  516.  7340 if tres1<0 or tres1>1 then tres1=0
  517.  7390 cls:goto 7020
  518.  7800 cls:sp_disp(1):home(0,0,0):kb()
  519.  7900 endfunc
  520.  8000 func d_save()      /*----------------------------------
  521.  8010 cls:sna=""
  522.  8020 for i=1 to 10
  523.  8030 hina(i)=left$(hina(i)+"                    ",20)
  524.  8040 sna=sna+hina(i)
  525.  8050 next
  526.  8100 fp=fopen("POP2NAME.DAT","c")
  527.  8110 fwrites(sna,fp)
  528.  8120 fclose(fp)
  529.  8130 fp=fopen("POP2HISC.DAT","c")
  530.  8140 fwrite(hsc,10,fp)
  531.  8150 fclose(fp)
  532.  8160 fp=fopen("POP2HICO.DAT","c")
  533.  8170 fwrite(hico,10,fp)
  534.  8180 fclose(fp)
  535.  8190 endfunc
  536.  8200 func d_load()      /*----------------------------------
  537.  8210 cls:sna=""
  538.  8220 fp=fopen("POP2NAME.DAT","r")
  539.  8230 freads(sna,fp)
  540.  8240 fclose(fp)
  541.  8250 fp=fopen("POP2HISC.DAT","r")
  542.  8260 fread(hsc,10,fp)
  543.  8270 fclose(fp)
  544.  8280 fp=fopen("POP2HICO.DAT","r")
  545.  8290 fread(hico,10,fp)
  546.  8295 fclose(fp)
  547.  8300 for i=1 to 10
  548.  8310 hina(i)=mid$(sna,(i-1)*20+1,20)
  549.  8330 next
  550.  8390 endfunc
  551. 30000 /*
  552. 30010 func cpu()    : /*----------------------------: /*----------------------------
  553. 30050 cls:sp_disp(0):color 7:locate 0,2:print"CPU POWER CHECK =":i=0
  554. 30110 mes=time$
  555. 30120 if mes=time$ then goto 30120 else mes=time$
  556. 30130 i=i+1
  557. 30140 st=stick(1):bu=strig(1):msstat(m1,m2,m3,m4):ik=inkey$(0)
  558. 30150 if ik=chr$(3) or ik=chr$(27) or ik=chr$(13) then ik=""
  559. 30160 if st=0 or bu=0 then ik=""
  560. 30170 sp_on(0,1):sp_move(0,300,300,0):sp_move(1,300,300,1)
  561. 30180 if mes=time$ then goto 30130 else mes=""
  562. 30200 i=int(i/10)*10:locate 18,2:print i:color 3
  563. 30230 color 5:locate 0,4:print"速度自動調節機能をONにします。":color 3
  564. 30235 color 3:locate 0,6:print "10MHz の";:print using"##";int((i*1000/700)/1000);:print".";:print using"###";((i*1000/700) mod 1000);:print" 倍の":print"スピードです。";
  565. 30240 /*wait2=i*4-1800
  566. 30250 wait=i*7:wait1=wait
  567. 30260 print  wait
  568. 30270 kb()
  569. 30280 for i=0 to wait:next:cls
  570. 30400 endfunc
  571.